﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using negocios;
using objetos;

namespace softsales.cadastro
{
    public partial class frmDepartamento : softsales.template.frmBase
    {
        public frmDepartamento()
        {
            InitializeComponent();
        }

        BLL_TB_DEPARTAMENTO b_tb_departamento = new BLL_TB_DEPARTAMENTO();
        OBJ_TB_DEPARTAMENTO o_tb_departamento = new OBJ_TB_DEPARTAMENTO();

        private void frmDepartamento_Load(object sender, EventArgs e)
        {
            grdDepartamento.Focus();
            grdDepartamento.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            CarregaGrid();
        }


        public override void btnExcluir_Click(object sender, EventArgs e)
        {
            base.btnExcluir_Click(sender, e);
        }

        public override void btnEditar_Click(object sender, EventArgs e)
        {

            string id = string.Empty;

            foreach (DataGridViewRow item in grdDepartamento.Rows)
            {
                if (item.Selected)
                {
                    id = item.Cells["id"].Value.ToString();
                }

            }

            foreach (OBJ_TB_DEPARTAMENTO o_tb_departamento in b_tb_departamento.SelecionarLista(string.Format("tb_departamento.id = {0}", id), ""))
            {
                idTextBox.Text = o_tb_departamento.id.ToString();
                desc_departamentoTextBox.Text = o_tb_departamento.desc_departamento.ToString();

            }

            base.btnEditar_Click(sender, e);
            tabContainer.SelectedTab = tabFormulario;


        }

        public override void btnNovo_Click(object sender, EventArgs e)
        {
            base.btnNovo_Click(sender, e);
            tabContainer.SelectedTab = tabFormulario;
            idTextBox.Enabled = false;
            LimpaControles(this);


        }

        public override void btnCancelar_Click(object sender, EventArgs e)
        {

            base.btnCancelar_Click(sender, e);

            tabContainer.SelectedTab = tabLista;
        }

        public override void LimpaControles(Control ctl)
        {
            base.LimpaControles(ctl);
        }

        public override void btnLocalizar_Click(object sender, EventArgs e)
        {
            softsales.template.frmLocalizar fLocalizar = new softsales.template.frmLocalizar();

            if (fLocalizar.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                List<string> where = new List<string>();

                if (fLocalizar.id != string.Empty)
                    where.Add(string.Format(" id = {0}", fLocalizar.id));

                if (fLocalizar.descricao != string.Empty)
                    where.Add(string.Format(" desc_departamento LIKE  '%{0}%'", fLocalizar.descricao));

                List<OBJ_TB_DEPARTAMENTO> lista_departamento = b_tb_departamento.SelecionarLista(string.Join("and", where.ToArray()).ToString(), "");


                if (lista_departamento.Count > 0)
                {
                    grdDepartamento.DataSource = lista_departamento;
                    grdDepartamento.Refresh();
                }
                else
                {
                    MessageBox.Show("Nenhum registro encontrado.");
                }



            }
            //base.btnLocalizar_Click(sender, e);

        }

        public override void btnSalvar_Click(object sender, EventArgs e)
        {
            base.btnSalvar_Click(sender, e);
        }

        public override bool Editar()
        {
            return base.Editar();
        }

        public override bool Localizar()
        {
            return base.Localizar();
        }

        public override bool Salvar()
        {
            try
            {
                o_tb_departamento.desc_departamento = desc_departamentoTextBox.Text;


                if (idTextBox.Text != string.Empty)
                {
                    o_tb_departamento.id = Convert.ToInt32(idTextBox.Text);
                    b_tb_departamento.Alterar(o_tb_departamento);
                }
                else
                {
                    b_tb_departamento.Incluir(o_tb_departamento);
                }
                tabContainer.SelectedTab = tabLista;
                CarregaGrid();
                return true;
            }
            catch (Exception)
            {

                return false;
            }

        }

        public override bool Excluir()
        {
            try
            {
                o_tb_departamento.id = Convert.ToInt32(idTextBox.Text);
                b_tb_departamento.Excluir(o_tb_departamento);
                tabContainer.SelectedTab = tabLista;
                CarregaGrid();
                return true;
            }
            catch (Exception)
            {

                return false;
            }

        }

        public override void btnFechar_Click(object sender, EventArgs e)
        {
            base.btnFechar_Click(sender, e);
        }

        public override void CarregaGrid()
        {
            grdDepartamento.DataSource = b_tb_departamento.SelecionarLista();
            grdDepartamento.Refresh();
        }
     
    }
}
